package avicit.bdp.dgs.qa.service.engine;

import avicit.platform6.core.exception.BusinessException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Map;

/**
 * @金航数码科技有限责任公司
 * @作者：developer
 * @邮箱：developer@avic-digital.com
 * @创建时间： 2023-09-17
 * @类说明：IEngine
 * @修改记录：
 * @注意事项：
 * @主要功能：计算引擎策略选择器
 */
@Component
public class EngineStrategySelector {
    /**
     * SpringBoot启动时根据@Component中配置的key，自动注入到engineMap中。
     */
    @Autowired
    private Map<String, IEngine> engineMap;

    /**
     * 根据key获取计算引擎
     * @param type
     * @return
     */
    public IEngine getEngineByType(String type) {
        IEngine engine = this.engineMap.get(type);
        if (engine == null) {
            throw new BusinessException("不支持该引擎：" + type);
        }

        return engine;
    }
}
